﻿using EGuayas.Web.Resources;
using EntGuayasSLA.BL;
using EntGuayasSLA.BL.Listas;
using EntGuayasSLA.BL.Listas.Criterias;
using Ext.Net;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace EGuayas.Web.EGlobal
{
    public partial class wucSeekProyect : ucWuc
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
            if (!X.IsAjaxRequest)
            {
                var provinciaList = ProvinciaLista.GetProvinciaLista();
                stoProvincia.DataSource = provinciaList;
                stoProvincia.DataBind();
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }

        }
        protected void cbbProvincia_Select(object sender, DirectEventArgs e)
        {
            try
            {
                var cantonList = CantonLista.GetCantonLista(e.ExtraParams["Id"]);
                cbbCanton.Reset();
                cbbParroquia.Reset();
                stoParroquia.RemoveAll();
                stoCanton.DataSource = cantonList;
                stoCanton.DataBind();
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }
        protected void cbbCanton_Select(object sender, DirectEventArgs e)
        {
            try
            {
                var parroquiaList = ParroquiaLista.GetParroquiaLista(e.ExtraParams["Id"]);
                cbbParroquia.Reset();
                stoParroquia.DataSource = parroquiaList;
                stoParroquia.DataBind();
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        }

        protected void btnBuscarExpedientesLic_Click(object sender, DirectEventArgs e)
        {
           try
           {
           var criterioBusqueda = ExpedienteCriteria.NewExpedienteCriteria();
            criterioBusqueda.ProvinciaId = e.ExtraParams["ProvinciaId"];
            criterioBusqueda.CantonId = e.ExtraParams["CantonId"];
            criterioBusqueda.ParroquiaId = e.ExtraParams["ParroquiaId"];
            criterioBusqueda.Codigo = e.ExtraParams["Codigo"];
            criterioBusqueda.Nombre = e.ExtraParams["Nombre"];
            var expedientesLic = LicenciamientoLista.GetLicenciamientoLista(criterioBusqueda);
            stoExpedienteLic.DataSource = expedientesLic;
            stoExpedienteLic.DataBind();
           }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
        
        }
        [DirectMethod(ShowMask = true, IDAlias = "WucSeekProyect")]
        public  LicenciamientoInfo FindProyecto(string stxtNombre,string stxtValor)
        {
            try
            {
                var criterioBusqueda = ExpedienteCriteria.NewExpedienteCriteria();
                criterioBusqueda.ProvinciaId = "";
                criterioBusqueda.CantonId = "";
                criterioBusqueda.ParroquiaId = "";
                switch(stxtNombre)
                {
                    case "Código":
                        criterioBusqueda.Codigo = stxtValor;
                        break;
                    case "Nombre":
                        criterioBusqueda.Nombre = stxtValor;
                        break;
                }
                return FindEndShowDatos(criterioBusqueda);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return null;
        }
        [DirectMethod(ShowMask = true, IDAlias = "WucSeekProyect")]
        public LicenciamientoInfo FindProyectoByCodigoNombre(string stxtCodigo,string stxtNombre)
        {
            try
            {
            var criterioBusqueda = ExpedienteCriteria.NewExpedienteCriteria();
            criterioBusqueda.ProvinciaId = "";
            criterioBusqueda.CantonId = "";
            criterioBusqueda.ParroquiaId = "";
            criterioBusqueda.Codigo = stxtCodigo;
            criterioBusqueda.Nombre = stxtNombre;
             
            return FindEndShowDatos(criterioBusqueda);
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return null;
        }
        /// <summary>
        /// Reorna item que concuerde con criterio de busqueda
        /// </summary>
        /// <param name="criterioBusqueda"></param>
        /// <returns></returns>
        private LicenciamientoInfo FindEndShowDatos(ExpedienteCriteria criterioBusqueda)
        {
            try{
            LicenciamientoLista expedientesLic = LicenciamientoLista.GetLicenciamientoLista(criterioBusqueda);

            if (expedientesLic.Count() == 1)
            {
                LicenciamientoInfo item = expedientesLic.FirstOrDefault();
                return (item);
            }
            else
            {
                if (expedientesLic.Count() > 0)
                {

                    stoExpedienteLic.DataSource = expedientesLic;
                    stoExpedienteLic.DataBind();
                    this.winSeekProyec.Show();
                }
                else
                {
                    X.Msg.Show(new MessageBoxConfig() { Message = Mensajes.MensajeCriterioBusq, Title = Titulos.TituloAviso, Buttons = MessageBox.Button.OK, Icon = MessageBox.Icon.INFO });
                }
            }
            }
            catch (Exception ex)
            {
                RegistrarLog(ex);
            }
            return (null);
        }
       

    }
}